<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
  // 网络请求：aaa -> 自己处理（10行）
//  处理：aaa拼接111 -》 自己处理（10行）
//  处理：aaa111拼接222 -》 自己处理（10行）
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('aaa')
    },1000)
  }).then((res) => {
    console.log(res,'第一层的10行处理代码');
    // reject没有的话，可以省略不写，函数只有一个参数的话，（）可以省略不写
    return new Promise((resolve,reject) => {
      // resolve(res+'111')
      reject('error')
    })
  }).then(res => {
    console.log(res,'第二层的10行处理代码');
    return new Promise((resolve, reject) => {
      resolve(res+'222')
    })
  }).then(res => {
    console.log(res,'第三层的10行处理代码');
  }).catch(err => {
    console.log(err);
    console.log('--------');
  })
 


  //简写方法1，resolve简写
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('aaa')
    },1000)
  }).then((res) => {
    console.log(res,'第一层的10行处理代码');
    return Promise.resolve(res+'111')
  }).then(res => {
    console.log(res,'第二层的10行处理代码');
    return Promise.resolve(res+'222')
  }).then(res => {
    console.log(res,'第三层的10行处理代码');
    console.log('--------');
  })



  //简写方法1.reject简写
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('aaa')
    },1000)
  }).then((res) => {
    console.log(res,'第一层的10行处理代码');
    return Promise.reject('error')
    //方法二：手动抛出异常信息
    // throw 'error message'
  }).then(res => {
    console.log(res,'第二层的10行处理代码');
    return Promise.resolve(res+'222')
  }).then(res => {
    console.log(res,'第三层的10行处理代码');
  }).catch(err => {
    console.log(err);
    console.log('--------');
  })
  
  
  
  // 简写方法2：省略掉Promise.resolve
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('aaa')
    },1000)
  }).then((res) => {
    console.log(res,'第一层的10行处理代码');
    // 简写方法，内部会对return的res+'111'做一个promise的包装，并且内部调用resolve
    return res+'111'
  }).then(res => {
    console.log(res,'第二层的10行处理代码');
    return res+'222'
  }).then(res => {
    console.log(res,'第三层的10行处理代码');
    console.log('--------');
  })


  
</script>
</body>
</html>